home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 June / EnigmA AMIGA RUN 08 (1996)(G.R. Edizioni)(IT)[!][issue 1996-06][EARSAN CD VII].iso / earcd / arexx / rxtrk386.lha / RexxTricks / FindGUI / FindGUI.rexx < prev    next >
OS/2 REXX Batch file  |  1996-04-16  |  35KB  |  1,038 lines

  1. /*
  2.    $VER: FindGUI.rexx V1.0 (3.4.96) © by Nils Görs
  3.  
  4.   This is a graphical User Interface for "Find" © by Ralph Seichter.
  5. */
  6.  
  7. /* where can i find the main program ;-) */
  8. Find.exe    = "Find"
  9.  
  10. /* path for the directory requester */
  11. Directory   = "Dh0:"
  12.  
  13. /* path for the (file) command requester */
  14. CommandPath = "C:"
  15.  
  16. /* path for the savelist requester */
  17. SaveListDir = "SYS:"
  18.  
  19. /* WhatIs() Filetyp and Commandlist */
  20. WhatisExe   = "whatis.findGUI"
  21.  
  22. /************************************************
  23.  * Please don't change anything under this line *
  24.  ************************************************/
  25. OPTIONS RESULTS
  26.  
  27. PARSE ARG PubScreen SearchArea.1 .
  28.  
  29. IF PubScreen == "?" THEN DO
  30.  OPTIONS PROMPT "PUBSCREEN/K,SEARCHAREA/K: "
  31.  PARSE PULL PubScreen SearchArea.1 .
  32. END
  33.  
  34.  
  35. /*
  36. ** Beschreibung der Applikation
  37. */
  38. appname     = 'FindGUI'
  39. applongname = 'FindGUI - ©1996 by Nils Görs'
  40. appinfo     = "Graphical-User-Interface for 'Find' from Ralph Seichter <zodiac@darkness.gun.de>"
  41. appversion  = '1.0'
  42. apprelease  = '1'
  43. appdate     = '3.4.96'
  44.  
  45. /*
  46. ** Alles öffnen und Variablen initialisieren
  47. */
  48. CALL _InitAll
  49.  
  50. UnSort.0    = 2
  51. UnSort.1    = localestring(MSG_GAD_CYCLE_UnSort1)
  52. UnSort.2    = localestring(MSG_GAD_CYCLE_UnSort2)
  53.  
  54.  
  55. _maintags:
  56. windowtags = WindowID(1),
  57.              PubScreenName(PubScreen),
  58.              WindowBackfillFB,
  59.              WindowTitle(appname appversion),
  60.              QuickHelpOn(HelpBool),
  61.               BeginMenu(localestring(MSG_MAIN_MENU_PROJECT)),
  62.                BeginSub(localestring(MSG_MAIN_MENUITEM_SAVEFILELIST)),
  63.                 SubItemD(localestring(MSG_SUB_MENUITEM_FULLPATH),106),
  64.                 SubItemD(localestring(MSG_SUB_MENUITEM_FILENAME),107) ItemBarlabel,
  65.                MenuItem(localestring(MSG_MAIN_MENUITEM_ABOUT),100) ItemBarlabel,
  66.                MenuItemC(localestring(MSG_MAIN_MENUITEM_HELP),103),
  67.                MenuItem(localestring(MSG_MAIN_MENUITEM_CHANGE),102),
  68.                MenuItem(localestring(MSG_MAIN_MENUITEM_ICONIFY),104) ItemBarlabel,
  69.                MenuItem(localestring(MSG_MAIN_MENUITEM_QUIT),101),
  70.               BeginMenu(localestring(MSG_MAIN_MENU_DATABASE)),
  71.                MenuItem(localestring(MSG_MAIN_MENUITEM_SELECTSEARCHAREA),2),
  72.                MenuItem(localestring(MSG_MAIN_MENUITEM_SELECTCOMMAND),31),
  73.                MenuItem(localestring(MSG_MAIN_MENUITEM_SELECTLFORMAT),8) ItemBarlabel,
  74.                MenuItem(localestring(MSG_MAIN_MENUITEM_DATABASE),105),
  75.    'HorizGroupA',
  76.       'Space',
  77.       'VertGroupA',
  78.          'Space',
  79.          'HorizGroupA',
  80.             'Space',
  81.             'VertGroupA',
  82.                'Space',
  83. ,
  84.                'LineArray',
  85.                    'BeginLine',
  86.                       Text3(localestring(MSG_MAIN_TEXT_SEARCHAREA)) 'TRAT_ID 1',
  87.                       StringGadget(SearchArea.1,1),
  88.                       GetDrawerButton(2),
  89.                       QuickHelp(localestring(MSG_MAIN_HELP_SEARCHAREA)),
  90.                    'EndLine',
  91.                   'Space',
  92.                    'BeginLine',
  93.                       Text3(localestring(MSG_MAIN_TEXT_SEARCHFOR)) 'TRAT_ID 3',
  94.                       StringGadget('',3),
  95.                    'EndLine',
  96.                   'Space',
  97.                    'BeginLine',
  98.                      Text3(localestring(MSG_MAIN_TEXT_SEARCHDEPTH)) 'TRAT_ID 4',
  99.                      SliderGadget(0,256,0,4),
  100.                      'Space',
  101.                      Text3(localestring(MSG_OFF)) 'TRAT_MinWidth 3 TRAT_ID 44',
  102.                    'EndLine',
  103.                   'Space',
  104.                'EndArray',
  105.              'HorizGroupS',
  106.                     'BeginLine',
  107.                      Text3(localestring(MSG_MAIN_TEXT_OUTPUT)) 'TRAT_ID 55',
  108.                      CycleGadget(unsort,0,55),
  109.                      'Space',
  110.                      Button(localestring(MSG_MAIN_TEXT_EXTENDET),12) 'TRAT_Disabled 1',
  111.                      QuickHelp(localestring(MSG_MAIN_HELP_EXTENDET)),
  112.                      Button(localestring(MSG_MAIN_EXECUTE),13) 'TRAT_Disabled 1',
  113.                      QuickHelp(localestring(MSG_MAIN_EXECUTEHELP)),
  114.                     'EndLine',
  115.              'EndGroup',
  116.                   'Space',
  117. ,
  118.               'HorizGroupSAC',
  119.                      Text3(localestring(MSG_MAIN_TEXT_FILETYP)) 'TRAT_ID 56',
  120.                      CheckBox(56),
  121.                      QuickHelp(localestring(MSG_MAIN_HELP_FILETYP)),
  122.                       'SpaceB',
  123.                      Text3(localestring(MSG_MAIN_TEXT_PATH)) 'TRAT_ID 5',
  124.                      CheckBox(5),
  125.                      QuickHelp(localestring(MSG_MAIN_HELP_PATH)),
  126.                       'SpaceB',
  127.                          Text3(localestring(MSG_MAIN_TEXT_FULL)) 'TRAT_ID 6',
  128.                           CheckBox(6),
  129.                           QuickHelp(localestring(MSG_MAIN_HELP_FULL)),
  130.                       'SpaceB',
  131.                          Text3(localestring(MSG_MAIN_TEXT_EXEC)) 'TRAT_ID 11',
  132.                           CheckBox(11),
  133.                           QuickHelp(localestring(MSG_MAIN_HELP_EXEC)),
  134.               'EndGroup',
  135. ,
  136.            'Space',
  137.                'LineArray',
  138.                    'BeginLine',
  139.                      Text3(localestring(MSG_MAIN_TEXT_LFORMAT)) 'TRAT_ID 7',
  140.                      StringGadget('',7),
  141.                      GetEntryButton(8),
  142.                      QuickHelp(localestring(MSG_MAIN_HELP_LFORMAT)),
  143.                    'EndLine',
  144.                   'Space',
  145.                    'BeginLine',
  146.                      Text3(localestring(MSG_MAIN_TEXT_EXECCOM)) 'TRAT_ID 9',
  147.                      StringGadget('',9),
  148.                       GetFileButton(31),
  149.                       QuickHelp(localestring(MSG_MAIN_HELP_EXECCOM)),
  150.                    'EndLine',
  151.                   'Space',
  152.                'EndArray',
  153.              'VertGroupA',
  154.                      Button(localestring(MSG_MAIN_BUT_START),10),
  155.                      QuickHelp(localestring(MSG_MAIN_HELP_START)),
  156.                     'Space',
  157.                   ListSS(Files,99,0,0),
  158.                   ClippedTextBox("",98),
  159.              'EndGroup',
  160. ,
  161.             'EndGroup',
  162.             'Space',
  163.          'EndGroup',
  164.         'Space',
  165. ,
  166. ,
  167.       'EndGroup',
  168.       'Space',
  169.    'EndGroup EndProject'
  170.  
  171. /*
  172. ** Unterbrechungssignale
  173. */
  174.  
  175. SIGNAL ON break_c
  176. /*SIGNAL ON failure*/
  177. SIGNAL ON halt
  178. SIGNAL ON ioerr
  179. SIGNAL ON syntax
  180.  
  181. app = TR_CREATEAPP('TRCA_Name'     '"'appname'"',
  182.                    'TRCA_LongName' '"'applongname'"',
  183.                    'TRCA_Info'     '"'appinfo'"',
  184.                    'TRCA_Version'  '"'appversion'"',
  185.                    'TRCA_Release'  '"'apprelease'"',
  186.                    'TRCA_Date'     '"'appdate'"',
  187.                    'TAG_END')
  188.  
  189.  
  190. IF app ~= '00000000'x THEN DO
  191.    window = TR_OPENPROJECT(app,windowtags)
  192.    WindowProject=C2D(window) /* zum Locken des Fensters bei Über */
  193. IF fromNewPub == 1 THEN CALL _AttributeZurueck
  194.  
  195.    CALL TR_SETATTRIBUTE(window,98,'TRAT_TEXT',localestring(MSG_TEXT_WHATAREYOU))
  196.  
  197.    IF window ~= '00000000'x THEN DO
  198.       ende = 0
  199.      IF HelpBool = 1 THEN CALL TR_SetAttribute(window,103,TRMN_Flags,TRMF_CHECKED)
  200.  
  201. No = 1
  202. IF SearchArea.1 ~= "" THEN No = 3
  203.  
  204. IF fromNewPub ~= 1 THEN CALL TR_SendMessage(Window,No,'TROM_ACTIVATE',0)
  205. fromNewPub=0
  206.  
  207.        DO WHILE ende ~= 1
  208.          CALL TR_WAIT(app,'')
  209.  
  210.          DO WHILE TR_HANDLEMSG(app,'event')
  211.  
  212. /******************
  213. *** CLOSEGADGET ***
  214. *******************/
  215.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN DO
  216.              setuni = 0
  217.               IF event.trm_project = dummywindow THEN DO
  218.                CALL _uniconify
  219.                setuni = 1
  220.               END
  221.  
  222.              IF setuni ~= 1 THEN DO
  223.               IF event.trm_project = window THEN DO
  224.                nummer = TR_GETATTRIBUTE(window,10,'TRAT_Value')+1
  225.                ende = 1
  226.               END
  227.              END
  228.             END
  229.  
  230. /**************
  231.  *** Slider ***
  232.  **************/
  233.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  234.               IF BITAND(D2X(event.trm_qualifier),'0200'x) = '0200'x THEN CALL _ShowInformation
  235.              SELECT
  236.               WHEN event.trm_id = 4 THEN DO
  237.                 event.trm_data = event.trm_data-1
  238.                 IF event.trm_data = -1 THEN  CALL TR_SETATTRIBUTE(window,44,'TRAT_Text',(localestring(MSG_OFF)))
  239.                  ELSE CALL TR_SETATTRIBUTE(window,44,'TRAT_Text',event.trm_data)
  240.               END
  241.               WHEN event.trm_id = 5 THEN DO
  242.                Path=event.trm_data
  243.                IF TR_GETATTRIBUTE(window,6,'TRAT_Value') == 1 THEN
  244.                CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',1)
  245.               END
  246.               WHEN event.trm_id = 6 THEN DO
  247.                Full=event.trm_data
  248.                CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',event.trm_data)
  249.               END
  250.               WHEN event.trm_id =11 THEN Exec=event.trm_data
  251.               WHEN event.trm_id =55 THEN DO
  252.                Sort=event.trm_data
  253.                IF Sort == 1 THEN normal= filesSorted
  254.                             ELSE normal= files
  255.  
  256.                CALL TR_SETATTRIBUTE(window,99,'TROB_ListView',normal)
  257.               END
  258.               WHEN event.trm_id =56 THEN FileTyp=event.trm_data
  259.  
  260.               WHEN event.trm_id = 103 THEN DO
  261.                HelpBool = TR_GETATTRIBUTE(window,103,'TRAT_VALUE')
  262.                CALL TR_SETATTRIBUTE(window,0,'TRWI_QuickHelp',HelpBool)
  263.                END
  264.  
  265.              OTHERWISE
  266.              nop
  267.              END
  268.             END
  269. /*************
  270. *** GADGET ***
  271. **************/
  272.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  273.              SELECT
  274.               WHEN event.trm_id = 2 THEN CALL _DrawerRequest
  275.               WHEN event.trm_id = 31 THEN CALL _FileRequest
  276.               WHEN event.trm_id = 8 THEN CALL _LFormatList
  277.               WHEN event.trm_id = 10 THEN CALL _StartSearching
  278.               WHEN event.trm_id = 12 THEN CALL _ShowInformation
  279.               WHEN event.trm_id = 13 THEN DO
  280.   CALL _GETNAMEFORINFO
  281.   CALL _UseWhatIs
  282.   END
  283.               WHEN event.trm_id = 101 THEN
  284.                DO
  285.                  Erg=rtezrequest(localestring(MSG_REQ_REALLYQUIT),localestring(MSG_YESNO),,"rt_pubscrname="PubScreen)
  286.                  IF Erg == 1 THEN ende = 1
  287.               END
  288.  
  289.               WHEN event.trm_id = 100 THEN CALL About
  290.               WHEN event.trm_id = 102 THEN CALL _NewPubScreen
  291.               WHEN event.trm_id = 104 THEN CALL _Iconify
  292.               WHEN event.trm_id = 105 THEN WhatIsListbool = RXTR_READFILE(Progdir2||WhatIsExe,WhatIsList)
  293.               WHEN event.trm_id = 106 THEN CALL _SaveFileListFull
  294.               WHEN event.trm_id = 107 THEN CALL _SaveFileListNames
  295.              OTHERWISE
  296.               NOP
  297.              END
  298.             END
  299.  
  300. /****************
  301.  *** Tastatur ***
  302.  ****************/
  303.             IF event.trm_class = 'TRMS_KEYPRESSED' THEN DO
  304.              IF event.trm_data == 13 THEN DO
  305.                sel1 = TR_GETATTRIBUTE(window,1,'TROB_String')
  306.                sel2 = TR_GETATTRIBUTE(window,3,'TROB_String')
  307.               SELECT
  308.               WHEN sel1 = "" THEN CALL TR_SendMessage(Window,1,'TROM_ACTIVATE',0)
  309.               WHEN sel2 = "" THEN CALL TR_SendMessage(Window,3,'TROM_ACTIVATE',0)
  310.               OTHERWISE
  311.               NOP
  312.               END
  313.              END
  314.             END
  315.  
  316. /* große Schleife! */
  317.          END
  318.       END
  319.       CALL TR_CLOSEPROJECT(window)
  320.    END
  321.    CALL TR_DELETEAPP(app)
  322.    IF catalog ~= 0 THEN CALL CLOSECATALOG(catalog)
  323. END
  324. EXIT(0)
  325.  
  326.  
  327. _DrawerRequest:            /* hole Suchpfad!*/
  328. searchArea.1 = TR_GETATTRIBUTE(window,1,'TROB_String')
  329. searchArea.1 = WORD(searchArea.1,1)
  330. If searchArea.1 ~= "" THEN Directory = searchArea.1
  331.  
  332. bool = ASL_RequestFile(window,searchArea,,
  333.                        "ASLFR_PubScreenName" PubScreen,
  334.                        "ASLFR_InitialDrawer" Directory,
  335.                        "ASLFR_DrawersOnly" 1,
  336.                        "ASLFR_TitleText" localestring(MSG_REQ_SELECTSEARCHAREA))
  337. IF bool ~= 0 THEN DO
  338.  CALL TR_SETATTRIBUTE(window,1,'TROB_String',searchArea.1)
  339.  CALL TR_GETATTRIBUTE(window,3,'TROB_String')
  340. IF result == "" THEN CALL TR_SendMessage(Window,3,'TROM_ACTIVATE',0)
  341. END
  342.  
  343. ELSE DO
  344.  CALL TR_GETATTRIBUTE(window,1,'TROB_String')
  345. IF result == "" THEN CALL TR_SendMessage(Window,1,'TROM_ACTIVATE',0)
  346.  ELSE DO
  347.   CALL TR_GETATTRIBUTE(window,3,'TROB_String')
  348.   IF result == "" THEN CALL TR_SendMessage(Window,3,'TROM_ACTIVATE',0)
  349.  END
  350. END
  351. RETURN
  352.  
  353. _FileRequest:
  354.                   bool = ASL_RequestFile(window,filename,,
  355.                                "ASLFR_PubScreenName" PubScreen,
  356.                                "ASLFR_InitialDrawer" CommandPath,
  357.                                "ASLFR_TitleText" localestring(MSG_REQ_SELECTSCOMMAND))
  358. IF bool ~= 0 THEN CALL TR_SETATTRIBUTE(window,9,'TROB_String',filename.1)
  359. RETURN
  360.  
  361.  
  362. _StartSearching:
  363. searchArea.1 = TR_GETATTRIBUTE(window,1,'TROB_String')
  364.   searchFile = TR_GETATTRIBUTE(window,3,'TROB_String')
  365.      LFormat = TR_GETATTRIBUTE(window,7,'TROB_String')
  366.  ExecCommand = TR_GETATTRIBUTE(window,9,'TROB_String')
  367. SELECT
  368.  WHEN searchArea.1 == "" THEN 
  369.  DO
  370.    CALL TR_SETATTRIBUTE(window,98,'TRAT_TEXT',localestring(MSG_MAIN_TEXT_PATHMISSING))
  371.    CALL TR_SendMessage(Window,1,'TROM_ACTIVATE',0)
  372.   RETURN
  373.  END
  374.  WHEN searchFile == "" THEN DO
  375.    CALL TR_SETATTRIBUTE(window,98,'TRAT_TEXT',localestring(MSG_MAIN_TEXT_FILEMISSING))
  376.    CALL TR_SendMessage(Window,3,'TROM_ACTIVATE',0)
  377.   RETURN
  378.  END
  379. OTHERWISE
  380. CALL TR_LOCKPROJECT(window)
  381.  
  382.  Depth = TR_GETATTRIBUTE(window,4,'TRAT_Value')-1
  383.  Arg = ""
  384.  IF Depth >=0 THEN Arg = "DEPTH="Depth
  385.  IF Path == 1 THEN Arg = Arg||" PATH"
  386.  IF Full == 1 THEN Arg = Arg||" FULL"
  387.  
  388.   IF Exec == 1 THEN DO
  389.       IF LFormat     = "" THEN BREAK
  390.       IF ExecCommand = "" THEN BREAK
  391.      Arg=Arg||" LFORMAT="'"'ExecCommand LFormat'"' "EXEC"
  392.   END
  393.   ELSE IF LFormat ~= "" THEN Arg = Arg||" LFORMAT="'"'LFormat'"'
  394.  
  395.   CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',localestring(MSG_SEARCHING))
  396.   IF Arg == "" THEN ADDRESS COMMAND Find.exe ">t:find.list" "PATTERN="searchFile "DIRECTORY="searchArea.1
  397.   ELSE ADDRESS COMMAND Find.exe ">t:find.list" "PATTERN="searchFile "DIRECTORY="searchArea.1 Arg
  398.  
  399. IF (RC) ~= 0 THEN DO
  400.   CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',"'"find.exe"'" localestring(MSG_MAIN_TEXT_FINDNOTFOUND))
  401.   CALL TR_UNLOCKPROJECT(window)
  402.   RETURN
  403. END
  404.  
  405.   CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',localestring(MSG_MAIN_TEXT_SORTING))
  406.   CALL RXTR_READFILE("t:find.list",Files)
  407.  
  408. ADDRESS COMMAND "delete t:find.list QUIET"
  409.  
  410. IF files.1 ~= "No matching files" THEN DO
  411. IF LFormat == "" THEN DO
  412.  IF FileTyp == 1 THEN DO
  413.    DO i = 1 to files.0
  414.     files.i = files.i||"  ("||RXTR_WHATIS(files.i)||")"
  415.    END
  416.  END
  417. END
  418.  
  419. CALL RXTR_QSORT(files,FilesSorted)
  420.  
  421. IF Sort == 1 THEN normal = filesSorted
  422.              ELSE normal = files
  423.  
  424.    CALL TR_SETATTRIBUTE(window,106,'TRAT_Disabled',0)
  425.    CALL TR_SETATTRIBUTE(window,107,'TRAT_Disabled',0)
  426.  
  427.    CALL TR_SETATTRIBUTE(window,99,'TROB_ListView',normal)
  428.    CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',,
  429.           localestring(MSG_FOUNDFILES) files.0 localestring(MSG_FOUNDFILES2))
  430.    IF LFormat == "" THEN DO
  431.                            CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',0)
  432.                            CALL TR_SETATTRIBUTE(window,13,'TRAT_Disabled',0)
  433.                     END
  434.                     ELSE DO
  435.                            CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',1)
  436.                            CALL TR_SETATTRIBUTE(window,13,'TRAT_Disabled',1)
  437.                     END
  438. END
  439.  ELSE DO
  440.   Files.0       = 0
  441.   FilesSorted.0 = 0
  442.   CALL TR_SETATTRIBUTE(window,99,'TROB_ListView',filesSorted)
  443.    CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',Files.1)
  444.   CALL TR_SETATTRIBUTE(window,99,'TROB_ListView',files)
  445.    CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',Files.1)
  446.    CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',1)
  447.    CALL TR_SETATTRIBUTE(window,13,'TRAT_Disabled',1)
  448.    CALL TR_SETATTRIBUTE(window,106,'TRAT_Disabled',1)
  449.    CALL TR_SETATTRIBUTE(window,107,'TRAT_Disabled',1)
  450.  
  451.  END
  452.  
  453. IF Exec == 1 THEN DO
  454.   IF ExecCommand = "" THEN BREAK
  455.   IF files.1 == "No matching files" THEN DO
  456.    CALL TR_SETATTRIBUTE(window,98,'TRAT_TEXT',Files.1)
  457.    CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',1)
  458.    CALL TR_SETATTRIBUTE(window,13,'TRAT_Disabled',1)
  459.   END
  460.   ELSE DO
  461.    CALL TR_SETATTRIBUTE(window,98,'TRAT_Text',,
  462.      localestring(MSG_OUTPUTCONSISTS) files.0 localestring(MSG_OUTPUTCONSISTS2))
  463.    CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',1)
  464.    CALL TR_SETATTRIBUTE(window,13,'TRAT_Disabled',1)
  465.   END
  466. END
  467. CALL TR_UNLOCKPROJECT(window)
  468. RETURN
  469.  
  470.  
  471. _SaveFileListFull:
  472. Savetitle='"'||localestring(MSG_REQ_SELECTSAVEFILE)||'"'
  473. CALL _SaveFileRequest                    /* Filerequest öffnen */
  474. IF bool == 0 THEN RETURN                /* Cancel */
  475.  
  476. IF EXISTS(ListFileName.1) THEN DO
  477.   CALL rtezrequest(localestring(MSG_REQ_DESTFILEEXISTS),localestring(MSG_REQ_OVERRIDE)"|"localestring(MSG_REQ_APPEND)"|"localestring(MSG_REQ_ABORT),,
  478.   ListfileName.1,"rt_pubscrname="PubScreen)
  479.     SELECT
  480.       WHEN result == 0 THEN RETURN
  481.       WHEN result == 1 THEN CALL OPEN(FileOutPut,Listfilename.1,"Write")
  482.       WHEN result == 2 THEN CALL OPEN(FileOutPut,Listfilename.1,"Append")
  483.       OTHERWISE
  484.       NOP
  485.     END
  486. END
  487. ELSE CALL OPEN(FileOutPut,Listfilename.1,"Write")
  488.  
  489. IF normal == files THEN
  490.  DO
  491.   DO i = 1 to files.0
  492.    CALL WRITELN(fileoutPut,files.i)
  493.   END
  494.  END
  495.  
  496. ELSE DO
  497.   DO i = 1 to filessorted.0
  498.    CALL WRITELN(fileoutPut,filessorted.i)
  499.   END
  500. END
  501.  
  502. CALL CLOSE(FileOutPut)
  503. RETURN
  504.  
  505. _SaveFileListNames:
  506. Savetitle='"'||localestring(MSG_REQ_SELECTSAVEFILE2)||'"'
  507. CALL _SaveFileRequest                    /* Filerequest öffnen */
  508. IF bool == 0 THEN RETURN                /* Cancel */
  509.  
  510. IF EXISTS(ListFileName.1) THEN DO
  511.   CALL rtezrequest(localestring(MSG_REQ_DESTFILEEXISTS),localestring(MSG_REQ_OVERRIDE)"|"localestring(MSG_REQ_APPEND)"|"localestring(MSG_REQ_ABORT),,
  512.   ListfileName.1,"rt_pubscrname="PubScreen)
  513.     SELECT
  514.       WHEN result == 0 THEN RETURN
  515.       WHEN result == 1 THEN CALL OPEN(FileOutPut,Listfilename.1,"Write")
  516.       WHEN result == 2 THEN CALL OPEN(FileOutPut,Listfilename.1,"Append")
  517.       OTHERWISE
  518.       NOP
  519.     END
  520. END
  521. ELSE CALL OPEN(FileOutPut,Listfilename.1,"Write")
  522.  
  523. IF normal == files THEN
  524.  DO
  525.   DO i = 1 to files.0
  526.    filenamepure=RXTR_FILEPART(files.i)
  527.    CALL WRITELN(fileoutPut,filenamepure)
  528.   END
  529.  END
  530.  
  531. ELSE DO
  532.   DO i = 1 to filessorted.0
  533.    filenamepure=RXTR_FILEPART(filessorted.i)
  534.    CALL WRITELN(fileoutPut,filenamepure)
  535.   END
  536. END
  537. CALL CLOSE(FileOutPut)
  538. RETURN
  539.  
  540. _SaveFileRequest:
  541.                   bool = ASL_RequestFile(window,Listfilename,,
  542.                                "ASLFR_PubScreenName" PubScreen,
  543.                                "ASLFR_InitialDrawer" SaveListDir,
  544.                                "ASLFR_TitleText" SaveTitle)
  545. SaveListDir=RXTR_PATHPART(ListFileName.1)
  546. RETURN
  547.  
  548.  
  549. /**************************************
  550.  *** Routinen zum (un)iconifizieren ***
  551.  **************************************/
  552. _Iconify:
  553. CALL _AttributeBehalten
  554. iwinsize.trd_left=10
  555. iwinsize.trd_top=10
  556. iwinsize.trd_width=20
  557. iwinsize.trd_height=10
  558. iwinsize.trd_left2=10
  559. iwinsize.trd_top2=10
  560. iwinsize.trd_width2=10
  561. iwinsize.trd_height2=20
  562. iwinsize.trd_zoomed=30
  563.  
  564. SleepWin = WindowID(1000),
  565.            PubScreenName(PubScreen),
  566.            WindowBackfillFB,
  567.            WindowTitle(appname appversion),
  568.            WindowDimensions(iwinsize),
  569.                         BeginMenu(localestring(MSG_MAIN_MENU_PROJECT)),
  570.                         MenuItem(localestring(MSG_MAIN_MENUITEM_QUIT),101),
  571.            'EndProject'
  572.  
  573.   ok=tr_closeproject(window)
  574.   window = '00000000'x
  575. dummywindow = TR_OPENPROJECT(app,SleepWin)
  576. return
  577.  
  578. _uniconify:
  579.   ok=tr_closeproject(dummywindow)
  580.   dummywindow = '00000000'x
  581.  
  582.   prefs.iwinx=iwinsize.trd_left
  583.   prefs.iwiny=iwinsize.trd_top
  584.   prefs.iwinw=iwinsize.trd_width
  585.   prefs.iwinh=iwinsize.trd_height
  586.   prefs.iwinx2=iwinsize.trd_left2
  587.   prefs.iwiny2=iwinsize.trd_top2
  588.   prefs.iwinw2=iwinsize.trd_width2
  589.   prefs.iwinh2=iwinsize.trd_height2
  590.   prefs.iwinz=iwinsize.trd_zoomed
  591.  
  592.    window = TR_OPENPROJECT(app,windowtags)
  593.    WindowProject=C2D(window) /* zum Locken des Fensters bei About */
  594.  
  595. IF HelpBool = 1 THEN DO
  596.  CALL TR_SetAttribute(window,103,TRMN_Flags,TRMF_CHECKED)
  597.  CALL TR_SetAttribute(window,0,TRWI_QuickHelp,1)
  598. END
  599. CALL _AttributeZurueck
  600. RETURN
  601.  
  602. _AttributeZurueck:
  603. /*******************************************************
  604. *** Zustand vor der Ikonifizierung wieder herstellen ***
  605. ********************************************************/
  606. CALL TR_SETATTRIBUTE(window,1,'TROB_STRING',iconifyString1)
  607. CALL TR_SETATTRIBUTE(window,3,'TROB_STRING',iconifyString2)
  608. CALL TR_SETATTRIBUTE(window,7,'TROB_STRING',iconifyString3)
  609. CALL TR_SETATTRIBUTE(window,9,'TROB_STRING',iconifyString4)
  610. CALL TR_SETATTRIBUTE(window,4,'TRAT_Value',Depth+1)
  611. IF  Depth = -1 THEN CALL TR_SETATTRIBUTE(window,44,'TRAT_Text',(localestring(MSG_OFF)))
  612.                ELSE CALL TR_SETATTRIBUTE(window,44,'TRAT_Text',Depth)
  613. CALL TR_SETATTRIBUTE(window,55,'TRAT_Value',iconifyString5)
  614. CALL TR_SETATTRIBUTE(window,56,'TRAT_Value',iconifyString6)
  615. CALL TR_SETATTRIBUTE(window,5,'TRAT_Value',iconifyString7)
  616. CALL TR_SETATTRIBUTE(window,6,'TRAT_Value',iconifyString8)
  617. CALL TR_SETATTRIBUTE(window,11,'TRAT_Value',iconifyString9)
  618.                IF Sort == 1 THEN normal= filesSorted
  619.                             ELSE normal= files
  620.                CALL TR_SETATTRIBUTE(window,99,'TROB_ListView',normal)
  621.                CALL TR_SETATTRIBUTE(window,98,'TRAT_TEXT',localestring(MSG_MAIN_TEXT_SLEEP))
  622.  
  623.                sel1 = TR_GETATTRIBUTE(window,1,'TROB_String')
  624.                sel2 = TR_GETATTRIBUTE(window,3,'TROB_String')
  625.               SELECT
  626.               WHEN sel1 = "" THEN CALL TR_SendMessage(Window,1,'TROM_ACTIVATE',0)
  627.               WHEN sel2 = "" THEN CALL TR_SendMessage(Window,3,'TROM_ACTIVATE',0)
  628.               OTHERWISE
  629.               NOP
  630.               END
  631.  
  632. If files.0 ~= 0 THEN DO
  633.    CALL TR_SETATTRIBUTE(window,12,'TRAT_Disabled',0)
  634.    CALL TR_SETATTRIBUTE(window,13,'TRAT_Disabled',0)
  635. END
  636. RETURN
  637.  
  638. _AttributeBehalten:
  639. iconifyString1 = TR_GETATTRIBUTE(window,1,'TROB_STRING')
  640. iconifyString2 = TR_GETATTRIBUTE(window,3,'TROB_STRING')
  641. iconifyString3 = TR_GETATTRIBUTE(window,7,'TROB_STRING')
  642. iconifyString4 = TR_GETATTRIBUTE(window,9,'TROB_STRING')
  643. Depth          = TR_GETATTRIBUTE(window,4,'TRAT_Value')-1
  644. iconifyString5 = TR_GETATTRIBUTE(window,55,'TRAT_VALUE')
  645. iconifyString6 = TR_GETATTRIBUTE(window,56,'TRAT_VALUE')
  646. iconifyString7 = TR_GETATTRIBUTE(window,5,'TRAT_VALUE')
  647. iconifyString8 = TR_GETATTRIBUTE(window,6,'TRAT_VALUE')
  648. iconifyString9 = TR_GETATTRIBUTE(window,11,'TRAT_VALUE')
  649. RETURN
  650.  
  651. /*******
  652.  *** ***
  653.  *******/
  654. _LFORMATList:
  655. IF PUBSCREENLIST('ScreenList') == 0 THEN RETURN
  656.  
  657. /*
  658.                   WindowFlags('TRWF_NODRAGBAR|TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  659. */
  660. LFormatListTags = WindowID(3),
  661.                   WindowPosition('TRWP_MOUSEPOINTER'),
  662.                   WindowBackfillFB,
  663.                   WindowTitle('LFORMAT'),
  664.                   WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  665.                   PubScreenName(Pubscreen),
  666.                  'VertGroupA',
  667.                  'Space',
  668.                   'HorizGroupA',
  669.                    'Space',
  670.                     ListSel('LForm',301,0),
  671.                     'Space',
  672.                   'EndGroup',
  673.                  'Space',
  674.                  'HorizSeparator',
  675.                  'Space',
  676.                   'HorizGroupA',
  677.                    'Space',
  678.                    ButtonRE(localestring(MSG_GAD_OKAY),302),
  679.                    'Space',
  680.                  'EndGroup Space EndGroup EndGroup EndProject'
  681.  
  682. LFormatProject = TR_OPENPROJECT(app,LFormatlisttags)
  683.   IF LFormatProject ~= '00000000'x THEN DO
  684.     CALL TR_LOCKPROJECT(window)
  685.  
  686.       DO WHILE ende ~= 1
  687.          DO WHILE TR_HANDLEMSG(app,'event3')
  688.             IF event3.trm_class = 'TRMS_ACTION' THEN ende = 1 /* Cancel Gadget */
  689.              IF event3.trm_class = 'TRMS_NEWVALUE' THEN DO
  690.                 nummer = TR_GETATTRIBUTE(LformatProject,301,'TRAT_Value')+1
  691.                 IF nummer <8 THEN lformattemplate=WORD(Lform.nummer,1)
  692.                              ELSE lformattemplate = Lform.nummer
  693.                 oldTemplate=TR_GETATTRIBUTE(window,7,'TROB_STRING')
  694.                 lformattemplate = oldTemplate||lformattemplate
  695.                 CALL TR_SETATTRIBUTE(window,7,'TROB_STRING',lformattemplate)
  696.              END
  697.          END
  698.       END
  699.   END
  700.  
  701.    ende = 0
  702.     CALL TR_UNLOCKPROJECT(window)
  703.     CALL TR_CLOSEPROJECT(LFormatProject)
  704. RETURN
  705.  
  706. /*******************************************************************
  707.  ***  Routine, die das GUI auf einem neuen PubScreen öffnen läßt ***
  708.  *******************************************************************/
  709. _NewPubScreen:
  710. IF PUBSCREENLIST('ScreenList') == 0 THEN RETURN
  711.  
  712. delstart=LSEARCH(PubScreen,Screenlist)
  713. IF delstart ~= -1 THEN RXTR_STEMREMOVE(ScreenList,delstart)
  714.  
  715. ScreenListTags = WindowID(2),
  716.    WindowBackfillFB,
  717.    WindowPosition('TRWP_MOUSEPOINTER'),
  718.    WindowTitle(localestring(MSG_TITLE_CHANGEPUBSCREEN)),
  719.    WindowFlags('TRWF_NOCLOSEGADGET|TRWF_NOESCCLOSE'),
  720.    PubScreenName(Pubscreen),
  721.    'VertGroupA',
  722.       'Space',
  723.       'HorizGroupA',
  724.          'Space',
  725.          ListSel('screenlist',301,0),
  726.          'Space',
  727.       'EndGroup',
  728.       'Space',
  729.       'HorizSeparator',
  730.       'Space',
  731.       'HorizGroupA',
  732.       'Space',
  733.       ButtonRE(localestring(MSG_GAD_CANCEL),302),
  734.       'Space',
  735.    'EndGroup Space EndGroup EndGroup EndProject'
  736.  
  737.     PubScreenProject = TR_OPENPROJECT(app,Screenlisttags)
  738.  
  739.   IF PubScreenProject ~= '00000000'x THEN DO
  740.     CALL TR_LOCKPROJECT(window)
  741.  
  742.       DO WHILE ende ~= 1
  743.          DO WHILE TR_HANDLEMSG(app,'event2')
  744.             IF event2.trm_class = 'TRMS_ACTION' THEN ende = 1 /* Cancel Gadget */
  745.  
  746.             IF event2.trm_class = 'TRMS_NEWVALUE' THEN DO
  747.             nummer = TR_GETATTRIBUTE(PubScreenProject,301,'TRAT_Value')+1
  748.               PubScreen = ScreenList.nummer
  749.               CALL _AttributeBehalten
  750.               CALL TR_UNLOCKPROJECT(window)
  751.               CALL TR_CLOSEPROJECT(PubScreenProject)
  752.               CALL TR_CLOSEPROJECT(window)
  753.               CALL TR_DELETEAPP(app)
  754.               CALL RXTR_PUBSCREENTOFRONT(PubScreen)
  755.               fromNewPub=1
  756.               CALL _maintags
  757.             END
  758.          END
  759.       END
  760.  
  761.    ende = 0
  762.     CALL TR_UNLOCKPROJECT(window)
  763.     CALL TR_CLOSEPROJECT(PubScreenProject)
  764. END
  765. RETURN
  766.  
  767. /*******************************************************************************
  768. ** Info über das Programm anzeigen
  769. *******************************************************************************/
  770. about:
  771.    CALL TR_AUTOREQUEST(app,window,PubScreenName(PubScreen),
  772.          BeginRequester('About','TRWP_CENTERDISPLAY'),
  773.             'VertGroupA',
  774.                'Space',
  775.                CenteredText3(appname appversion '('||appdate||') (C) 1996 by Nils Görs <N.Goers@Art-Line.de>'),
  776.                'SpaceS',
  777.                CenteredText(appinfo),
  778.                'Space',
  779.                'HorizSeparator',
  780.                'Space',
  781.                CenteredText3('This program is using the 'Triton GUI creation system''),
  782.                'SpaceS',
  783.                CenteredText("'Triton' is (C) by Stefan Zeiger <s.zeiger@laren.rhein-main.de>"),
  784.                'Space',
  785.                'HorizSeparator',
  786.                'Space',
  787.                CenteredText3("This program also use 'tritonrexx.library'"),
  788.                'SpaceS',
  789.                'HorizGroupSC',
  790.                   'Space',
  791.                   TextN("'tritonrexx.library' is (C) by Jürgen Kohrmeyer <j_kohrmeyer@wilam.north.de>") 'TRAT_Flags TRTX_NOUNDERSCORE',
  792.                   'Space',
  793.                'EndGroup',
  794.                'Space',
  795.             'EndGroup',
  796.             'BeginRequesterGads',
  797.             CenteredButtonRE(localestring(MSG_THANKS),10000),
  798.          'EndRequester')
  799.    RETURN
  800.  
  801. _ShowInformation:
  802. CALL _GETNAMEFORINFO
  803. IF WhatIsListBool = 1 THEN DO
  804.                 CALL rtezrequest(localestring(MSG_CREATIONDATE)  fileinfo.3,
  805.                                NL||localestring(MSG_CREATIONDATE2) fileinfo.4,
  806.                                NL||localestring(MSG_SIZE) fileinfo.1 "Bytes",
  807.                                NL||localestring(MSG_BLOCKS) fileinfo.2,
  808.                             NL NL||localestring(MSG_ATTRIBUTES) fileinfo.5,
  809.                                NL||localestring(MSG_FILETYP) WhatIsTyp,
  810.                             NL NL||localestring(MSG_COMMENT) fileinfo.6,
  811.                                ,localestring(MSG_THANKSEXECUTE),FileNameInfo,"rt_pubscrname="PubScreen)
  812.  IF result = 1 THEN CALL _UseWhatIs
  813. END
  814. ELSE
  815.                 CALL rtezrequest(localestring(MSG_CREATIONDATE)  fileinfo.3,
  816.                                NL||localestring(MSG_CREATIONDATE2) fileinfo.4,
  817.                                NL||localestring(MSG_SIZE) fileinfo.1 "Bytes",
  818.                                NL||localestring(MSG_BLOCKS) fileinfo.2,
  819.                             NL NL||localestring(MSG_ATTRIBUTES) fileinfo.5,
  820.                                NL||localestring(MSG_FILETYP) WhatIsTyp,
  821.                             NL NL||localestring(MSG_COMMENT) fileinfo.6,
  822.                                ,localestring(MSG_THANKS),FileNameInfo,"rt_pubscrname="PubScreen)
  823.  
  824. CALL TR_UnlockProject(window)
  825. RETURN
  826.  
  827. _GETNAMEFORINFO:
  828.                nummer = TR_GETATTRIBUTE(window,99,'TRAT_Value')+1
  829.                IF LFormat = "LFORMAT" THEN RETURN
  830.                CALL TR_LockProject(window)
  831.                IF Lformat ~= "" THEN DO
  832.                 CALL rtezrequest(localestring(MSG_NOTPOSSIBLE),localestring(MSG_THANKS),,"rt_pubscrname="PubScreen)
  833.                 CALL TR_UnlockProject(window)
  834.                 RETURN
  835.                END
  836.                IF Sort == 1 THEN normal= filesSorted
  837.                             ELSE normal= files
  838.                FilenameInfo = VALUE(normal||.||nummer)
  839.  
  840. IF filenameinfo == "FILES.1" THEN DO/* damit der Inforequester nicht auf- */
  841. CALL TR_UnlockProject(window)       /* poppt, falls man RETURN drückt und */
  842. RETURN                              /* noch keine Liste vorhanden ist.    */
  843. END
  844.                 ADDRESS COMMAND 'list' FileNameInfo 'LFORMAT = "%L*N%B*N%-9D*N%T*N%A*N%c*N" >t:FileInfo'
  845.                 CALL RXTR_READFILE("T:FileInfo",FileInfo)
  846.                 ADDRESS COMMAND 'delete t:fileinfo QUIET'
  847.                   IF fileinfo.6 = "" THEN fileinfo.6 = localestring(MSG_NONE)
  848.                  IF LENGTH(fileinfo.6) > 40 THEN DO
  849.                   Anzahl = WORDS(fileinfo.6)
  850.                   IF DATATYPE(Anzahl/2,"Wh") == 0 THEN Anzahl2 = (Anzahl/2)+0.5
  851.                                                   ELSE Anzahl2 = Anzahl/2
  852.                   fileinfo.6=SUBWORD(fileinfo.6,1,Anzahl2)||NL,
  853.            "              "||SUBWORD(fileinfo.6,Anzahl2+1)
  854.                  END
  855.   IF Filetyp = 1 THEN WhatIsTyp = STRIP(WORD(FilenameInfo,2),"Both","()")
  856.                  ELSE WhatisTyp=RXTR_WHATIS(FileNameInfo)
  857.  
  858. RETURN
  859.  
  860. _UseWhatIs:
  861. IF FileTyp == 1 THEN FileNameInfo = WORD(FilenameInfo,1)
  862.  
  863. WI_Entry =LSEARCH(WhatIsTyp,WhatIsList)
  864.   IF WI_Entry = = -1 THEN DO
  865.    CALL rtezrequest(WhatisTyp localestring(MSG_NOTSUPPORTED),localestring(MSG_THANKS),,"rt_pubscrname="PubScreen)
  866.    CALL TR_UnlockProject(window)
  867.    RETURN
  868.   END
  869. WI_Entry = WI_Entry + 1
  870. CALL _SetFilename
  871. CALL _SetPubScreenName
  872.  
  873. IF Yep ~= 0 THEN ADDRESS COMMAND StartCommand ">NIL:"
  874. CALL TR_UnlockProject(window)
  875. RETURN
  876.  
  877. _SetFileName:
  878.    Yep = INDEX(WhatIslist.WI_entry,"%s")-1
  879.     IF Yep == 0 THEN RETURN
  880.    Len= LENGTH(WhatIsList.WI_entry)
  881.    NewCommand = LEFT(WhatIsList.WI_entry,Yep)
  882.    NewCommand2= RIGHT(WhatIsList.WI_entry,Len-yep-2)
  883.   StartCommand=NewCommand||FilenameInfo||NewCommand2
  884. RETURN
  885.  
  886. _SetPubScreenName:
  887.   Yep2 = INDEX(StartCommand,"%p")-1
  888.    IF Yep2 == -1 THEN RETURN
  889.    Len= LENGTH(NewCommand||FilenameInfo||NewCommand2)
  890.    NewCommand3 = LEFT(StartCommand,Yep2)
  891.    NewCommand4= RIGHT(NewCommand||FilenameInfo||NewCommand2,Len-yep2-2)
  892.   StartCommand = newcommand3||PubScreen||newcommand4
  893. RETURN
  894. /*******************************************************************************
  895. ** Load and interpret arexx script
  896. *******************************************************************************/
  897.  
  898. loadrexx:
  899.    PARSE ARG dir,file,store
  900.  
  901.    IF dir ~= '' THEN DO
  902.       IF RIGHT(dir,1) = ':' THEN
  903.          file = dir||file
  904.       ELSE
  905.          file = dir||'/'||file
  906.    END
  907.  
  908.    IF ~OPEN('rexxfile',file,'R') THEN
  909.       RETURN(FALSE)
  910.  
  911.    rexxtext = READCH('rexxfile',64000)
  912.    INTERPRET rexxtext
  913.  
  914.    CALL CLOSE('rexxfile')
  915.  
  916.    IF store ~= '' THEN
  917.       INTERPRET store '= rexxtext'
  918.  
  919.    DROP rexxtext
  920.  
  921.    RETURN(TRUE)
  922.  
  923. /*******************************************************************************
  924. ** Text aus dem Catalog-File auslesen, falls vorhanden
  925. *******************************************************************************/
  926.  
  927. localestring:
  928.    PARSE ARG stringnumber
  929.  
  930.    IF catalog ~= 0 THEN
  931.       RETURN(GETCATALOGSTR(catalog,stringnumber,strings.stringnumber))
  932.    ELSE
  933.       RETURN(strings.stringnumber)
  934.  
  935. _InitAll:
  936. NL = '0a'x
  937. TRUE  = 1
  938. FALSE = 0
  939.  
  940. HelpBool      = 0
  941. Files.0       = 0
  942. FilesSorted.0 = 0
  943. Path          = 0
  944. Full          = 0
  945. Exec          = 0
  946.  
  947. LForm.0     = 8
  948. LForm.1     = "%e   Name suffix"
  949. LForm.2     = "%f   Full path and name"
  950. LForm.3     = "%m   Name without suffix"
  951. LForm.4     = "%N   Full name"
  952. LForm.5     = "%n   Full name (lowercase)"
  953. LForm.6     = "%p   Fully qualified path"
  954. LForm.7     = "%%   Percent sign"
  955. LForm.8     = "%-30p%-20N"
  956.  
  957.    catalog      = 0
  958.  
  959.  
  960.    /*
  961.    ** Open libs
  962.    */
  963.  
  964.    IF ~SHOW('LIBRARIES','tritonrexx.library') THEN
  965.       IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN
  966.          quit('Cannot open tritonrexx.library!',10)
  967.  
  968.    IF ~SHOW(LIBRARIES,'rexxtricks.library') THEN
  969.       IF ~ADDLIB('rexxtricks.library',9,-30,38) THEN
  970.          quit('Cannot open rexxtricks.library!',10)
  971.  
  972.    IF ~SHOW('LIBRARIES','rexxreqtools.library') THEN
  973.       IF ~ADDLIB('rexxreqtools.library',9,-30,0) THEN
  974.          quit('Cannot open rexxreqtools.library!',10)
  975.  
  976.    IF ~SHOW('LIBRARIES','rexxsupport.library') THEN
  977.       IF ~ADDLIB('rexxsupport.library',9,-30,0) THEN
  978.          quit('Cannot open rexxsupport.library!',10)
  979.  
  980.  
  981.    /*
  982.    ** Set current dir
  983.    */
  984.  
  985.    PARSE SOURCE . . . script .
  986.    progdir = PATHPART(script)
  987.  
  988.    booll = LENGTH(progdir)
  989.    booli= LASTPOS(":",progdir)
  990.    boolh= LASTPOS("/",progdir)
  991.  
  992.   IF booli <= booll THEN progdir2=progdir||"/"
  993.   IF boolh == 0 THEN progdir2=progdir||"/"
  994.  
  995.    CALL PRAGMA('D',progdir)
  996.  
  997.    /*
  998.    ** Read default strings, open locale.library and catalog
  999.    */
  1000.  
  1001.    IF ~loadrexx(progdir,'FindGUI.strings','') THEN
  1002.       quit('Error reading file "FindGUI.strings"!'),10)
  1003.  
  1004.    IF ~SHOW('LIBRARIES','locale.library') THEN
  1005.       CALL ADDLIB('locale.library',0,-30,0)
  1006.  
  1007.    IF SHOW('LIBRARIES','locale.library') THEN DO
  1008.       language = GETENV('language')
  1009.       IF language ~= '' THEN
  1010.          catalog = OPENCATALOG(MAKEPATH(progdir,'catalogs/' || language || '/FindGUI.catalog'),'english',0)
  1011.  
  1012.       IF catalog = 0 THEN
  1013.          catalog = OPENCATALOG('FindGUI.catalog','english',0)
  1014.  
  1015.    END
  1016.  
  1017. IF PubScreen == "" THEN
  1018.    PubScreen = RXTR_GETDEFAULTPUBSCREEN()
  1019.  
  1020. WhatIsListbool = RXTR_READFILE(Progdir2||WhatIsExe,WhatIsList)
  1021. RETURN
  1022. /*******************************************************************************
  1023. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  1024. *******************************************************************************/
  1025. break_c:
  1026. failure:
  1027. halt:
  1028. ioerr:
  1029. syntax:
  1030.    SAY '+++ Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)
  1031.    SAY SOURCELINE(sigl)
  1032.  
  1033.    IF app ~= '00000000'x THEN
  1034.       CALL TR_DELETEAPP(app)
  1035.  
  1036.    EXIT(10)
  1037. /*EOS*/
  1038.